-
-
Notifications
You must be signed in to change notification settings - Fork 624
Migrate CI build-doc to Meson #39973
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: develop
Are you sure you want to change the base?
Conversation
Looks like some file permission goes wrong? (symbolic link get converted to normal file?) |
docs = [doc[1] for doc in sorted(documents)] | ||
# Put the bibliography first, because it needs to be built first: | ||
docs.remove(Path('reference/references')) | ||
docs.insert(0, Path('reference/references')) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Why is such a large change necessary in this file?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
To be honest, I got carried a way a bit: the strictly necessary change is to remove mentions of import sage
, then I used the chance to use pathlib, and to catch all those paths vs strings issues added typing info. Oh, and there were a few old deprecated stuff in there which was easier to remove than to migrate to pathlib 🦊
Documentation preview for this PR (built with commit 1c65a0b; changes) is ready! 🎉 |
Doc build is working now, and the changes relative to the last develop build seem to be minimal and mostly due to using a newer sphinx version now. Marking it as blocker since currently the docbuild CI for other PRs is completely failing. |
fails while building docs the old way - is it normal? |
It fails with
https://github.com/sagemath/sage/actions/runs/15081532937/job/42398821050#step:9:3982 so this is the same problem as for the other PRs. |
no, my question was - why does that CI run build docs the old way? |
Thanks, I was not aware of this mechanism!
I think the situation here is a bit different. The doc build ci workflow is mostly there to provide devs a preview of the doc changes; it's purpose is less to test the docbuilding itself (of course it's testing this as well). Also the meson and make scripts just invoke the sage docbuilder, which is doing most of the work - so I don't think it's worth to test both ways. But yeah, it's a complicated question on how to best migrate completely to meson, also with respect to the required doc changes. On one hand, it's a lot of additional work to maintain the two systems in parallel (including docs and ci for both) while on the other hand you would want to make the transition as smooth as possible. I'm hoping that we can soft-deprecate the make interface in the next release cycle, which would be then a natural point to revise and migrate more of the documentation to meson. I'm open and happy about other opinions on how this migration should look like. |
do you plan to fix this later or just ignore it for this pull request? |
Just wanted to add it to this PR, only to realize that it's not going to be that easy: the |
@user202729 - are you happy enough here now to revert this to positive review? |
Actually:
|
Actually, the test is exactly doing its jobs, no? In other words: is #40120 just an issue with the CI, or does an actual user using sage-the-distro (since that isn't completely deprecated yet we ought to assume some user exists…) trying to build doc that way would encounter the same error? The latter appears more likely? (I'm not using sage-the-distro myself) In that case if the CI infrastructure is removed how do we know if a similar breakage won't happen again with some other package upgrade? |
Done.
I don't have a plan for this atm. To be honest, I don't even see the point of building a pdf of the docs in 2025. Having a good online documentation should suffice.
The error is actually not related to the docs build. What happened is that the cython module was compiled with Singular x. Then Singular was updated to version y. The problem is that the CI/sage-the-distro doesn't recognize that the version of Singular changed and the cython module needs to be compiled again to link against Singular y and not x. So the underlying issue is with the caching of the CI/sage-the-distro. |
Indeed, I also guessed that. But isn't the CI caching the exact same mechanism as the normal caching anyway (e.g. an user of sage-the-distro originally use 4.4.0, then Anyway… can we somehow delete the CI cache to fix test-long for now?
In some rare cases, this catches some LaTeX errors… as a fallback if the author forget to check the documentation diff. (Also, some HTML pages are extremely large that it lags my browser, it might be beneficial for someone to look at the PDF, because it's paginated it should render at reasonable speed) |
@vbraun What's the issue? |
@vbraun is it because of http://build.sagemath.org/#/builders/47/builds/124? This indeed fails for the docs, but the full error points more to the m4ri update as the source. |
Does pdf docbuild work? I don't remember what the error was, but pretty sure the merge script failed because of that. And yes, the point of running TeX is to verify that the equation are valid markup. |
@vbraun there are no changes to anything TeX-typesettable here. |
Not on the CI at the moment, but that was broken by a combination of previous pull requests. My understanding (best guess?) of the situation is explained in #40157 . I'm not sure if build-doc-pdf depends on build-doc in some way however. A quick reading shows no dependency. |
|
I am trying to run
which seem to indicate that no sphinx extensions are loaded. Why? |
@tobiasdiez : what is |
Make it possible to build the documentation with meson via
For this a couple of changes was necessary in the docbuilder:
sage_docbuild
independent ofsage
so that meson can usesage_docbuild
during config time to construct all the docbuild targets (otherwise one needs to first install sage, and then could configure the docbuild)📝 Checklist
⌛ Dependencies